import { serverApi } from "./config";

// 定义接口返回数据结构（根据实际后端返回调整）
interface Result<T> {
  code: number;
  msg: string;
  data: T;
}

/**
 * 发送短信并返回验证码（虚拟短信场景）
 * @param tel 手机号
 * @returns Promise<Result.data的值（可能为验证码或null）>
 */
export async function sendSms(tel: string): Promise<string | null> {
  // 手机号格式简单校验
  if (!/^1\d{10}$/.test(tel)) {
    console.error("手机号格式不正确");
    return null;
  }

  try {
    // 构建请求URL（编码手机号）
    const baseUrl = `${serverApi}/gruul-mall-uaa-service/sms-api/send-sms`;
    const encodedTel = encodeURIComponent(tel);
    const url = `${baseUrl}?tel=${encodedTel}`;

    // 发送POST请求
    const response = await fetch(url, {
      method: "GET",
    });

    // 检查响应状态
    if (!response.ok) {
      throw new Error(`请求失败，状态码: ${response.status}`);
    }

    // 解析响应数据（指定类型为Result<string>，假设data是字符串类型的验证码）
    const result: Result<string> = await response.json();

    console.log("接口返回数据:", result);

    // 返回data字段（可能为虚拟验证码或null）
    return result.data || null;
  } catch (error) {
    console.error(
      "发送短信出错:",
      error instanceof Error ? error.message : String(error)
    );
    return null;
  }
}
